package stringcode;
public class CountWord {
    //    统计字符串中的单词个数，这里的单词指的是连续的不是空格的字符。
//    请注意，你可以假定字符串里不包括任何不可打印的字符。
//    输入: "Hello, my name is John"
//    输出: 5
//    解释: 这里的单词是指连续的不是空格的字符，所以 "Hello," 算作 1 个单词。
    public static void main(String[] args) {

    }
    public int countWord(String s) {
       // if (s.length() == 0)//if(s==null)s==""等于s==null吗//结果是二者不相等的//不可用空格+1判断单词个数，要考虑各种极端情况
         //   return 0;
        //忽略了最后一个单词是无空格的可能
        int count = 0;
        boolean flag = false;
        StringBuilder sb=new StringBuilder(s);
        sb.append(" ");
        s=sb.toString();//s引用了一个新对象添加空格
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == ' ' && flag == true) {
                count++;
                flag=false;
            } else if (c != ' ' ) {//处理极端情况，所以应该替代这行代码
                flag = true;
            }
        }
        return count;
    }
}
